<?php
namespace app\admin\controller;

use think\facade\Db;
use think\facade\Request;
class Admin extends  Base
{
    /**
     * @return 管理员管理
     */

    //删除、更新状态都提取了公共的方法
    //好处就是减少代码量
    //不好的地方：权限无法监控到
    public function index()
    {
        //判断当前管理员是不是超级管理员
        //如果是超级管理员，则有权限查看其他的管理员，有更改、删除其他管理员的权限
        //否则只能查看自己的信息
        $loginAdmin = session('adminSessionaData');
        if($loginAdmin['group_id']==1){
            $adminData = Db::name('admin')->alias('a')->field('a.*,b.title')->join('auth_group b','a.group_id=b.id')->select();
        } else {
            $adminData = Db::name('admin')->alias('a')->field('a.*,b.title')->join('auth_group b','a.group_id=b.id')->where('a.id',$loginAdmin['id'])->select();
        }

        return view('', [
            'adminData' => $adminData
        ]);
    }

    public function add()
    {
        $authGroup = Db::name('auth_group')->field('id,title')->select();
        if(request()->isPost()){
            $data = input('post.');
            if(!empty($data['password'])){
                $data['password'] = $this->password_salt($data['password']);
            }
            $data['last_login_time'] = time();
            $res = Db::name('admin')->insert($data);
            if($res){
                return alert('操作成功！','index',6,3);
            }else{
                return alert('操作失败！','index',5,3);
            }
        }
        return view('',[
            'authGroup' => $authGroup
        ]);
    }

    public function edit()
    {
        $id=input('id');

        if(request()->post()){
            $data = input('post.');

            if(!empty($data['password'])){
                $data['password']=$this->password_salt($data['password']);
            }else{
                unset($data['password']);
            }

            $res = Db::name('admin')->update($data);
            if($res){
                return alert('修改成功！','index',6,3);
            }else{
                return alert('修改失败！','index',5,3);
            }
        }

        $adminData     = Db::name('admin')->find($id);
        $authGroupData = Db::name('auth_group')->select();
        return view('',[
            'adminData'     => $adminData,
            'authGroupData' => $authGroupData,
        ]);

    }

    public function del(){
        $id  = input('id');
        $res = Db::name('admin')->delete($id);
        if($res){
            return alert('删除成功！','index',6,3);
        }else{
            return alert('删除失败！','index',5,3);
        }
    }
}